package meiju;


// 组合代码 二进制法 求集合子集模板
public class Test04 {
    private static int[] nums = new int[]{1,2,3,4,5,6,7,8};


    public static void main(String[] args) {
        int n = 3;
        print_subSet(n);
    }

    private static void print_subSet(int n) {
        for (int i = 0; i < (1 << n); i++) {
            for (int j = 0; j < n; j++) {
                // 检查i的每一位是否是1 如果i的二进制上第j位是1那么就将第j个数字加进来
                if(((i>>j) & 1) == 1){
                    System.out.print(nums[j] + " ");
                }
            }
            System.out.println();
        }
    }
}
